package leecode

import (
	"sort"
	"strings"
)

func groupAnagrams(strs []string) [][]string {
	groups := make(map[string][]string)
	for _, str := range strs {
		// 对字符串中的字符进行排序
		sortedStr := sortString(str)
		// 将排序后的字符串作为键，原始字符串作为值存入 map
		groups[sortedStr] = append(groups[sortedStr], str)
	}

	var result [][]string
	// 将分组结果转换为结果数组
	for _, group := range groups {
		result = append(result, group)
	}
	return result
}

func sortString(str string) string {
	// 将字符串转换为字符数组并排序
	arr := strings.Split(str, "")
	sort.Strings(arr)
	// 将排序后的字符数组转换为字符串
	return strings.Join(arr, "")
}
